package com.kxmall.huishou.service;

import com.kxmall.count.countParam.RecoverParam;
import com.kxmall.count.countVO.RecoveryChartVO;
import com.kxmall.huishou.domain.HsSettlementOrder;
import com.kxmall.huishou.domain.vo.HsSettlementOrderVo;
import com.kxmall.huishou.domain.bo.HsSettlementOrderBo;
import com.kxmall.common.core.page.TableDataInfo;
import com.kxmall.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * 回收结算订单信息Service接口
 *
 * @author kxmall
 * @date 2023-11-24
 */
public interface IHsSettlementOrderService {

    /**
     * 查询回收结算订单信息
     */
    HsSettlementOrderVo queryById(Long id);

    /**
     * 查询回收结算订单信息列表
     */
    TableDataInfo<HsSettlementOrderVo> queryPageList(HsSettlementOrderBo bo, PageQuery pageQuery);

    /**
     * 查询回收结算订单信息列表
     */
    List<HsSettlementOrderVo> queryList(HsSettlementOrderBo bo);

    /**
     * 新增回收结算订单信息
     */
    Boolean insertByBo(HsSettlementOrderBo bo);

    /**
     * 修改回收结算订单信息
     */
    Boolean updateByBo(HsSettlementOrderBo bo);

    /**
     * 修改回收结算订单信息
     */
    Boolean updateById(HsSettlementOrder order);

    /**
     * 校验并批量删除回收结算订单信息信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    Double sumAmountByRiderId(Long riderId, Date startTime, Date endTime);

    /**
     * 统计 日 周 月的回收重量
     */
    List<RecoveryChartVO> getRecoveryChartVOList(RecoverParam recoverParam);

    /**
     * 统计 7天的回收重量
     */
    List<RecoveryChartVO> getChartVOListSeven();
}
